package com.strange3.utils.chapters.states.chapterbasedapplication
{
	import com.strange3.utils.chapters.Chapter;
	import com.strange3.utils.chapters.IChapter;

	/**
	 * Klasa obsługująca stan DONE.
	 * (obiekt CHAPTER został już wyświetlony i teraz czeka na dalsze akcje)
	 * 
	 * Aksjomaty dostępne w tym obiekcie:
	 *  1) Obiekt video powiązany z obiektem klienta załadował się już w 100%
	 * ------ DESIGN TEMPLATE STATE -------
	 *  
	 * @author strange3studio
	 * 
	 */
	public class ApplicationStateCreated
	{
	
	/* ---------------- SINGLETON DESIGN PATTERN's PART ------------------*/
		
		protected static var _instance = null;
		
		public static function instance() {
			if(!ApplicationStateCreated._instance) {
				ApplicationStateCreated._instance = new ApplicationStateCreated();
			}
			return ApplicationStateCreated._instance; 
		}
		
	/* -------------- END OF SINGLETON DESIGN PATTERN's PART ---------------*/ 

		public function playChapter(chapter:IChapter, client = null):void {
				// procedura odtwarzająca dany rozdział wideo, 
				// przy założeniu że aplikacja jest w stanie "READY",
				// czyli została dopiero co utworzona
			client.activeChapter = chapter;
			
			// przekazujemy chapterowi, który chcemy odtworzyć
			// obiekt klienta, który ten chapter odtwarza
			chapter.playChapter(client);
				
		}
		

		public function changeState(client, state):void {
			client.changeState(client, state);
		}
		
	}
}